﻿// <copyright file="Comment.cs" company="Microsoft Corporation">
// Copyright (c) 2009 Microsoft Corporation All Rights Reserved
// </copyright>
// <author>Michael S. Scherotter</author>
// <email>mischero@microsoft.com</email>
// <date>2009-04-13</date>
// <summary>Community Comment</summary>

namespace NYTimes.Data
{
    using System;
    using System.Collections.Generic;

    /// <summary>
    /// Community comment
    /// </summary>
    public class Comment
    {
        /// <summary>
        /// Gets or sets the title
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// Gets or sets the body
        /// </summary>
        public string Body { get; set; }

        /// <summary>
        /// Gets or sets the approval date
        /// </summary>
        public DateTime ApproveDate { get; set; }

        /// <summary>
        /// Gets or sets the update date
        /// </summary>
        public DateTime? UpdateDate { get; set; }

        /// <summary>
        /// Gets or sets the creation date
        /// </summary>
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// Gets or sets the recommendation count
        /// </summary>
        public int Recommendations { get; set; }

        /// <summary>
        /// Gets or sets the replies
        /// </summary>
        public List<Comment> Replies { get; set; }

        /// <summary>
        /// Gets or sets the user title
        /// </summary>
        public string UserTitle { get; set; }

        /// <summary>
        /// Gets or sets the user url
        /// </summary>
        public Uri UserUrl { get; set; }

        /// <summary>
        /// Gets or sets the display name
        /// </summary>
        public string DisplayName { get; set; }

        /// <summary>
        /// Gets or sets the location
        /// </summary>
        public string Location { get; set; }

        /// <summary>
        /// Gets or sets the user comments service URL
        /// </summary>
        public Uri UserComments { get; set; }

        /// <summary>
        /// Gets or sets the comment question
        /// </summary>
        public string CommentQuestion { get; set; }

        /// <summary>
        /// Gets or sets the article URL
        /// </summary>
        public Uri ArticleUrl { get; set; }

        /// <summary>
        /// Gets or sets the number of times people followers
        /// </summary>
        public int TimesPeople { get; set; }

        /// <summary>
        /// Gets or sets the number of times this has been shared
        /// </summary>
        public int Sharing { get; set; }

        /// <summary>
        /// Outputs the book detail properties
        /// </summary>
        /// <returns>a string with named value pairs</returns>
        public override string ToString()
        {
            return Synergist.Utility.GetProperties(this);
        }
    }
}
